package com.sunwayworld.basemodule.rm.train.exampaper.bean;

import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import com.alibaba.fastjson.annotation.JSONField;
import com.sunwayworld.framework.data.annotation.Id;
import com.sunwayworld.framework.data.annotation.NotNull;
import com.sunwayworld.framework.data.annotation.Table;
import com.sunwayworld.framework.data.annotation.Transient;
import com.sunwayworld.framework.support.domain.AbstractInsertable;
import com.sunwayworld.framework.support.domain.Activatable;
import com.sunwayworld.framework.support.domain.Insertable;

/**
 * @author zhangpf@sunwayworld.com
 * @date 2020-03-13
 */
@Table("T_CORE_EXAM_PAPER")
public class LimsCoreExamPaperBean extends AbstractInsertable<Long> implements Insertable<Long>, Activatable<Long> {

    @Transient
    private static final long serialVersionUID = -82566196618711043L;

    @Id
    private Long id; // 主键
    
    private Long examId; // 试卷ID
    
    private Long trainId; // 培训实施ID
    
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime actBeginTime; // 开始时间
    
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime actEndTime; // 结束时间
    
    @NotNull(defaultValue = "draft")
    private String status; // 考试状态(draft-未考/done-已考)
    
    @NotNull(defaultValue = "0")
    private Long score; // 考试成绩
    
    private String userId; // 考卷用户ID
    
    private String userName; // 考卷用户名称

    private String examUserId; // 考试人员ID
    private String examUserName; // 考试人员
    
    private String createdById; // 制单人编码
    
    private String createdByName; // 制单人名称

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime; // 制单时间
    
    private String createdByOrgId; // 制单人单位编码
    
    private String createdByOrgName; // 制单人单位名称
    
    @NotNull(defaultValue = "0")
    private String activatedFlag; // 启用标志
    
    private String activatedById; // 启用人ID
    
    private String activatedByName; // 启用人名称
    
    @JSONField(format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime activatedTime; // 启用时间

    private String remark;// 备注

    // 开始考试菜单上填写的考试开始时间、结束时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime examBeginTime; // 考试开始时间

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime examEndTime; // 考试结束时间

    @NotNull(defaultValue = "0")
    private Long examDuration; // 考试时长

    public Long getExamDuration() {
        return examDuration;
    }

    public void setExamDuration(Long examDuration) {
        this.examDuration = examDuration;
    }

    private String examPaperCode;// 考试编号

    public String getExamPaperCode() {
        return examPaperCode;
    }

    public void setExamPaperCode(String examPaperCode) {
        this.examPaperCode = examPaperCode;
    }

    public LocalDateTime getExamBeginTime() {
        return examBeginTime;
    }

    public void setExamBeginTime(LocalDateTime examBeginTime) {
        this.examBeginTime = examBeginTime;
    }

    public LocalDateTime getExamEndTime() {
        return examEndTime;
    }

    public void setExamEndTime(LocalDateTime examEndTime) {
        this.examEndTime = examEndTime;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getExamUserId() {
        return examUserId;
    }

    public void setExamUserId(String examUserId) {
        this.examUserId = examUserId;
    }

    public String getExamUserName() {
        return examUserName;
    }

    public void setExamUserName(String examUserName) {
        this.examUserName = examUserName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Long getExamId() {
        return examId;
    }

    public void setExamId(Long examId) {
        this.examId = examId;
    }

    public Long getTrainId() {
        return trainId;
    }

    public void setTrainId(Long trainId) {
        this.trainId = trainId;
    }

    public LocalDateTime getActBeginTime() {
        return actBeginTime;
    }

    public void setActBeginTime(LocalDateTime actBeginTime) {
        this.actBeginTime = actBeginTime;
    }

    public LocalDateTime getActEndTime() {
        return actEndTime;
    }

    public void setActEndTime(LocalDateTime actEndTime) {
        this.actEndTime = actEndTime;
    }
    
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getScore() {
        return score;
    }

    public void setScore(Long score) {
        this.score = score;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getCreatedById() {
        return createdById;
    }

    public void setCreatedById(String createdById) {
        this.createdById = createdById;
    }

    public String getCreatedByName() {
        return createdByName;
    }

    public void setCreatedByName(String createdByName) {
        this.createdByName = createdByName;
    }

    public LocalDateTime getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(LocalDateTime createdTime) {
        this.createdTime = createdTime;
    }

    public String getCreatedByOrgId() {
        return createdByOrgId;
    }

    public void setCreatedByOrgId(String createdByOrgId) {
        this.createdByOrgId = createdByOrgId;
    }

    public String getCreatedByOrgName() {
        return createdByOrgName;
    }

    public void setCreatedByOrgName(String createdByOrgName) {
        this.createdByOrgName = createdByOrgName;
    }

    public String getActivatedFlag() {
        return activatedFlag;
    }

    public void setActivatedFlag(String activatedFlag) {
        this.activatedFlag = activatedFlag;
    }

    public String getActivatedById() {
        return activatedById;
    }

    public void setActivatedById(String activatedById) {
        this.activatedById = activatedById;
    }

    public String getActivatedByName() {
        return activatedByName;
    }

    public void setActivatedByName(String activatedByName) {
        this.activatedByName = activatedByName;
    }

    public LocalDateTime getActivatedTime() {
        return activatedTime;
    }

    public void setActivatedTime(LocalDateTime activatedTime) {
        this.activatedTime = activatedTime;
    }

}